package com.kwok.boot.rabbitmq.routing.producer.controller;

import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@Slf4j
public class ProducerController {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    @GetMapping("/send")
    public String sendMessageToQueue(String message){
        log.debug("生产者发送到队列中的消息数据是：{}", message);
        /**
         * 参数说明：
         * exchange:生产者发送消息给指定的交换机
         * routingKey:路由键，给定某个条件，满足该条件则生产者发送消息到交换机
         * 参数3：要发送的消息数据
         */
        //生产者把消息发送给交换机，交换机将消息广播给订阅的队列
        rabbitTemplate.convertAndSend("Routing-Direct-Exchange", "debug", message);
        rabbitTemplate.convertAndSend("Routing-Direct-Exchange", "warning", message);
        return "消息发送成功";
    }

}
